/*!
 * jquery.inputmask.js
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 * Version: 3.2.1-29
 */
!function (factory) {
    "function" == typeof define && define.amd ? define(["jquery", "inputmask"], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
}(function ($, Inputmask) {
    return void 0 === $.fn.inputmask && ($.fn.inputmask = function (fn, options) {
        var nptmask, input;
        if (options = options || {}, "string" == typeof fn) switch (fn) {
            case "mask":
                return nptmask = new Inputmask(options), this.each(function () {
                    nptmask.mask(this);
                });

            case "unmaskedvalue":
                return input = this.jquery && this.length > 0 ? this[0] : this, input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();

            case "remove":
                return this.each(function () {
                    this.inputmask && this.inputmask.remove();
                });

            case "getemptymask":
                return input = this.jquery && this.length > 0 ? this[0] : this, input.inputmask ? input.inputmask.getemptymask() : "";

            case "hasMaskedValue":
                return input = this.jquery && this.length > 0 ? this[0] : this, input.inputmask ? input.inputmask.hasMaskedValue() : !1;

            case "isComplete":
                return input = this.jquery && this.length > 0 ? this[0] : this, input.inputmask ? input.inputmask.isComplete() : !0;

            case "getmetadata":
                return input = this.jquery && this.length > 0 ? this[0] : this, input.inputmask ? input.inputmask.getmetadata() : void 0;

            case "setvalue":
                input = this.jquery && this.length > 0 ? this[0] : this, $(input).val(options),
                void 0 !== input.inputmask && $(input).triggerHandler("setvalue.inputmask");
                break;

            case "option":
                if ("string" != typeof options) return this.each(function () {
                    return void 0 !== this.inputmask ? this.inputmask.option(options) : void 0;
                });
                if (input = this.jquery && this.length > 0 ? this[0] : this, void 0 !== input.inputmask) return input.inputmask.option(options);
                break;

            default:
                return options.alias = fn, nptmask = new Inputmask(options), this.each(function () {
                    nptmask.mask(this);
                });
        } else {
            if ("object" == typeof fn) return nptmask = new Inputmask(fn), this.each(void 0 === fn.mask && void 0 === fn.alias ? function () {
                return void 0 !== this.inputmask ? this.inputmask.option(fn) : void nptmask.mask(this);
            } : function () {
                nptmask.mask(this);
            });
            if (void 0 === fn) return this.each(function () {
                nptmask = new Inputmask(options), nptmask.mask(this);
            });
        }
    }), $.fn.inputmask;
});